//
//  LYQWelcomeView.swift
//  SwiftWeibo
//
//  Created by 刘英群 on 2017/2/7.
//  Copyright © 2017年 刘英群. All rights reserved.
//

import UIKit
import SDWebImage

//欢迎界面
class LYQWelcomeView: UIView {
    
    @IBOutlet weak var iconView: UIImageView!
    
    @IBOutlet weak var tipLabel: UILabel!
    @IBOutlet weak var bottomCons: NSLayoutConstraint!
    
    class func welcomeView() -> LYQWelcomeView{
        
        let nib = UINib(nibName: "LYQWelcomeView", bundle: nil)
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! LYQWelcomeView
        
        //从xib加载试图默认 600*600
        v.frame = UIScreen.main.bounds
        
        return v
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        
        //提示：initWithCode 只是刚刚从xib的二进制文件，将视图数据加载完成
        // 还没有和代码连线建立起关系，所以开发时，千万不要在这个方法中处理UI
        print("initWithCoder + \(iconView)")
    }
   
    override func awakeFromNib() {
        
        //1.url
        guard let urlString = LYQNetworkManager.shared.userAccount.avatar_large,
            let url = URL(string: urlString) else {
            
            return
        }
        
        //2.设置头像 - 如果网络图像没有下载完成，先显示占位图像
        // 如果不指定占位图像，之前设置的图像会被清空！
        
        iconView.sd_setImage(with: url,
                             placeholderImage: UIImage(named: "avatar_default_big"))
        
        }
    
    // 自动布局系统更新完成约束后，会自动调用此方法
    // 通常是对子视图布局进行修改
//    override func layoutSubviews() {
//        
//    }
    
    ///视图被添加到 window上，表示视图已经显示
    override func didMoveToWindow() {
        super.didMoveToWindow()
        
        // 视图是使用自动布局来设置的，只是设置了约束
        // 当视图被添加到窗口上时， 根据父视图的大小，计算约束值， 更新控件位置
        
        // -layoutIfNeeded 会直接按照当前的约束直接更新控件位置
        // -执行之后，控件所在位置，就是xib中布局的位置
        self.layoutIfNeeded()
        
        bottomCons.constant = bounds.size.height - 200
        
        // 如果控件们的frame还没有计算好，所有的约束都会做动画
        UIView.animate(withDuration: 3.0,
                       delay: 0,
                       usingSpringWithDamping: 0.7,
                       initialSpringVelocity: 0,
                       options: [],
                       animations: { 
                        
                        // 更新约束
                        self.layoutIfNeeded()
        }) { (_) in
            
            UIView.animate(withDuration: 1.0, animations: { 
                self.tipLabel.alpha = 1
            }, completion: { (_) in
            
                self.removeFromSuperview()
            })
        }
    }
}
